package plgbase

import (
	"dgo/goutils/utils"
	"gitee.com/ymofen/supervalue"
)

type PlgFileLoader struct {
	PlgBase
}

func (this *PlgFileLoader) ReloadConf(conf *wrapper.SuperValue) error {
	var strfile string
	TryFlagParse(func(cmd *utils.FlagSet) {
		cmd.StringVar(&strfile, "config-file", "", "config-file=app.config.json")
	})
	if len(strfile) > 0 {
		CheckReloadPlgFormFile(strfile)
		utils.RegisterFactoryVarFunc("startup.config-file", func(sender interface{}, args ...interface{}) interface{} {
			return strfile
		})
	}
	return nil
}

func CreatePlgFileLoaderFunc(args ...interface{}) (rval interface{}, err error) {
	obj := &PlgFileLoader{}
	if len(args) > 0 {
		if str, ok := args[0].(string); ok {
			obj.PlugId = str
		}
	}
	obj.CheckDNA()
	rval = obj
	return
}
